home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / Micro Mail / MicroMail.jar / POP3Reader.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-09-14  |  3.6 KB  |  181 lines

  1. public class POP3Reader {
  2.    protected static long idleTime = 0L;
  3.    protected static boolean popDebug = false;
  4.    protected static int popMessageCount;
  5.  
  6.    public static boolean deleteMessageFromServer(int var0) {
  7.       Globals.writeLine(Globals.POP3_DELE + var0);
  8.       if (!Globals.waitForMessage(Globals.RESPONSE_OK, true)) {
  9.          MicroMail.printInfo("Error deleting message #" + var0 + "  from server");
  10.       } else {
  11.          MicroMail.printInfo("Message #" + var0 + " deleted from server");
  12.       }
  13.  
  14.       return true;
  15.    }
  16.  
  17.    public static Message getMessageAtOnce(int var0, int var1) {
  18.       Object var2 = null;
  19.       Message var3;
  20.       if (readWholeMessage(var0, var1)) {
  21.          var3 = parseMessage(var1);
  22.       } else {
  23.          var3 = null;
  24.       }
  25.  
  26.       System.gc();
  27.       var3.unread = true;
  28.       return var3;
  29.    }
  30.  
  31.    public static String[] getMessageIDs(int var0) {
  32.       int var1 = -1;
  33.       int var2 = -1;
  34.       String[] var3 = new String[var0];
  35.       Globals.writeLine(Globals.POP3_UIDL);
  36.       if (!Globals.waitForMessage(Globals.RESPONSE_OK, true)) {
  37.          return null;
  38.       } else {
  39.          int var4 = 0;
  40.  
  41.          while((var2 = Globals.readLine()) > -1 && !Globals.startsWith('.', 0)) {
  42.             if (var4 < var0) {
  43.                var1 = Globals.indexOf(' ', 0, var2) + 1;
  44.                if (var1 > 0) {
  45.                   var3[var4] = new String(Globals.byteArray, var1, var2 - var1);
  46.                } else {
  47.                   var3[var4] = null;
  48.                }
  49.  
  50.                ++var4;
  51.             }
  52.          }
  53.  
  54.          System.gc();
  55.          return var3;
  56.       }
  57.    }
  58.  
  59.    public static int[] getMessageLengths(int var0) {
  60.       int var1 = -1;
  61.       int var2 = -1;
  62.       int[] var3 = new int[var0];
  63.       Globals.writeLine(Globals.POP3_LIST);
  64.       if (!Globals.waitForMessage(Globals.RESPONSE_OK, true)) {
  65.          return null;
  66.       } else {
  67.          int var4 = 0;
  68.  
  69.          while((var2 = Globals.readLine()) > -1 && !Globals.startsWith('.', 0)) {
  70.             if (var4 < var0) {
  71.                var1 = Globals.indexOf(' ', 0, var2) + 1;
  72.                if (var1 > -1) {
  73.                   var3[var4] = Globals.makeInt(var1, var2 - 1);
  74.                }
  75.  
  76.                ++var4;
  77.             }
  78.          }
  79.  
  80.          System.gc();
  81.          return var3;
  82.       }
  83.    }
  84.  
  85.    public static int getMessagesCount() {
  86.       int var0 = -1;
  87.       Globals.writeLine(Globals.POP3_STAT);
  88.       var0 = Globals.readLine();
  89.       var0 = Globals.indexOf(' ', 4, var0);
  90.       var0 = Globals.makeInt(4, var0 - 1);
  91.       System.gc();
  92.       return var0;
  93.    }
  94.  
  95.    public static Message parseMessage(int var0) {
  96.       int var1 = 0;
  97.       int var2 = 1;
  98.       int var3 = 0;
  99.       boolean var6 = false;
  100.       Message var7 = new Message();
  101.       var7.body = null;
  102.       Object var9 = null;
  103.  
  104.       for(int var4 = var0; var1 < var4 & (var6 ^ true); var1 = var2 + 1) {
  105.          var2 = Globals.indexOf('\n', var1, var4);
  106.          if (var2 < 0) {
  107.             var2 = var0;
  108.          }
  109.  
  110.          if (!Globals.startsWith(' ', var1) && !Globals.startsWith('\t', var1)) {
  111.             String var8 = new String(Globals.byteArray, var1, var2 - var1);
  112.             var3 = Message.startsWithHeaderItem(var8);
  113.             if (var3 > -1) {
  114.                var7.setItem(var8, var3);
  115.             }
  116.          } else {
  117.             var7.appendItem(new String(Globals.byteArray, var1, var2 - var1), var3);
  118.          }
  119.  
  120.          var6 = var2 == var1 + 1;
  121.       }
  122.  
  123.       System.gc();
  124.       Object var10 = null;
  125.       String var15 = var7.contentType;
  126.       if (var15.startsWith(" multipart")) {
  127.          int var11 = var15.indexOf("boundary");
  128.          var15 = var15.substring(var11 + 10, var15.length() - 2);
  129.       } else {
  130.          var15 = null;
  131.       }
  132.  
  133.       if (var15 != null) {
  134.          var6 = false;
  135.          var1 = Globals.indexOf(var15, var2, var0) + var15.length();
  136.  
  137.          while(!var6) {
  138.             var2 = Globals.indexOf(var15, var1, var0);
  139.             if (var2 > -1) {
  140.                int var5 = Globals.indexOf("\n\r\n", var1, var0);
  141.                if (Globals.indexOf("text/plain", var1, var5) > -1) {
  142.                   Globals.bodyStart = var5 + 2;
  143.                   Globals.bodyLen = var2 - var5 - 4;
  144.                   var6 = true;
  145.                }
  146.  
  147.                var1 = var2 + var15.length();
  148.             } else {
  149.                var6 = true;
  150.             }
  151.          }
  152.       } else {
  153.          Globals.bodyStart = var1;
  154.          Globals.bodyLen = var0 - var1;
  155.       }
  156.  
  157.       System.gc();
  158.       return var7;
  159.    }
  160.  
  161.    public static boolean readWholeMessage(int var0, int var1) {
  162.       Globals.writeLine(Globals.POP3_RETR + var0);
  163.       if (!Globals.waitForMessage(Globals.RESPONSE_OK, true)) {
  164.          return false;
  165.       } else {
  166.          try {
  167.             Globals.in.read(Globals.byteArray, 0, var1);
  168.             if ((char)Globals.byteArray[var1 - 3] != '.') {
  169.                Globals.in.read();
  170.             }
  171.  
  172.             System.gc();
  173.             return true;
  174.          } catch (Exception var3) {
  175.             ((Throwable)var3).printStackTrace();
  176.             return false;
  177.          }
  178.       }
  179.    }
  180. }
  181.